package com.mybank.domain;

import java.sql.*;
import java.util.Properties;

public class CajaDeAhorro extends Cuenta {

    public CajaDeAhorro(double saldoInicial) {
        super(saldoInicial);

    }

    public CajaDeAhorro() {
    }

    public void cargarCajaAhorro(String nroCajaAhorro) {
        String driverDb;
        String urlDb;
        String usuarioDb;
        String passwordDb;

        // leo las propiedades ingresadas en Controller
        Properties p = System.getProperties();

        driverDb = p.getProperty("driverDb");
        urlDb = p.getProperty("urlDb");
        usuarioDb = p.getProperty("usuarioDb");
        passwordDb = p.getProperty("passwordDb");

        try {
            Class.forName(driverDb);
        } catch (ClassNotFoundException e) {
            System.out.println(e.toString());
        }
        String sql = "SELECT * FROM CUENTAS WHERE NUMERO = '" + nroCajaAhorro + "'";

        try {
            Connection con = DriverManager.getConnection(urlDb, usuarioDb, passwordDb);
            Statement s = con.createStatement();
            ResultSet rs = s.executeQuery(sql);

            while (rs.next()) {
                this.setIdCuenta((rs.getString(1)));
                this.setSaldo(Double.parseDouble(rs.getString(4)));
            }
            rs.close();
            s.close();
            con.close();
        } catch (SQLException e) {
        } catch (Exception e) {
        }
    }

    public boolean extraccion(double monto) {
        boolean isOk = false;
        String driverDb;
        String urlDb;
        String usuarioDb;
        String passwordDb;

        // leo las propiedades ingresadas en Controller
        Properties p = System.getProperties();

        driverDb = p.getProperty("driverDb");
        urlDb = p.getProperty("urlDb");
        usuarioDb = p.getProperty("usuarioDb");
        passwordDb = p.getProperty("passwordDb");

        if (saldo >= monto) {
            isOk = true;
            saldo = saldo - monto;
            try {
                Class.forName(driverDb);
            } catch (ClassNotFoundException e) {
                System.out.println(e.toString());
            }

            String sql = "UPDATE CUENTAS "
                    + " SET SALDO = " + saldo
                    + " WHERE NUMERO = '" + this.idCuenta + "'";

            try {
                Connection con = DriverManager.getConnection(urlDb, usuarioDb, passwordDb);
                Statement s = con.createStatement();
                s.executeUpdate(sql);
                s.close();
                con.close();

            } catch (SQLException e) {
            } catch (Exception e) {
            }
        } else {
            //mostrar mensaje saldo insuficiente.
        }
        return isOk;
    }
}
